function CheckIdCard(CardNo){
//性别　1：男　0：女
//生日　19811010
if ((CardNo == "")||(!(isNumber(CardNo))&&(CardNo.length == 15))||(!(isNumber(CardNo.substr(0,17)))&&(CardNo.length == 18))||((CardNo.length != 15)&&(CardNo.length != 18)))
{
    alert("您的身份证号码输入有误，必需是15数字或18位,请重新检查并输入!");
    return false;
}
else if (CardNo.length == 15)
{
  if(CardNo.substr(8,2)>12||CardNo.substr(8,2)<1)
  {
    alert("您身份证的出生“月”输入有误,请重新检查并输入!");
    return false;
  }
  if(CardNo.substr(10,2)>31||CardNo.substr(10,2)<1)
  {
    alert("您身份证的出生“日”输入有误,请重新检查并输入!");
    return false;
  }
  
  return true;
}
else if (CardNo.length == 18)
{
  if(CardNo.substr(6,4)<1900||CardNo.substr(6,4)>2100)
  {
    alert("您身份证的出生“年”输入有误,请重新检查并输入!");
    return false;
  }
  if(CardNo.substr(10,2)>12||CardNo.substr(10,2)<1)
  {
    alert("您身份证的出生“月”输入有误,请重新检查并输入!");
    return false;
  }
  if(CardNo.substr(12,2)>31||CardNo.substr(12,2)<1)
  {
    alert("您身份证的出生“日”输入有误,请重新检查并输入!");
    return false;
  }
 
  
  var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
  var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
  
  if (CardNo.charAt(17) == 'x')
  {
    CardNo = CardNo.replace("x","X");    
  }
  
  var checkDigit = CardNo.charAt(17);  
  var cardNoSum = 0;
  
  for (var i=0; i<CardNo.length-1; i++)
  {
    cardNoSum = cardNoSum + CardNo.charAt(i)*Wi[i];
  }
  
  var seq = cardNoSum%11;
  var getCheckDigit = Ai[seq]; 
  
  if (checkDigit != getCheckDigit)
  {
    alert("您的身份证号码校验失败，请重新检查并输入!");
    return false;
  }     
  return true;
}  
else
{
    return true;
}
}

function isNumber(str) 
{ 
	if(str==null || str=="") return false ; 
	for(var i=0 ;i<str.length ;i++) 
	{ 
	var cI = str.charAt(i) ; 
	if(cI<'0' || cI>'9') return false ; 
	} 
	return true ;
}	
